#ifndef __HIKARI_ANIMATION_TRACK__
#define __HIKARI_ANIMATION_TRACK__

#include"hikari.h"

class AnimationTrack{

	wstring animationTrackName;
	int startFrame;
	int endFrame;
	float animationSpeed;
public:
	AnimationTrack(wstring&trackName, int startFrame, int endFrame, float animationSpeed){
		this->animationTrackName=trackName;
		this->startFrame=startFrame;
		this->endFrame=endFrame;
		this->animationSpeed=animationSpeed;
	}

	wstring&getTrackName(){
		return animationTrackName;
	}

	int getStartFrame(){
		return startFrame;
	}

	int getEndFrame(){
		return endFrame;
	}

	float getSpeed(){
		return animationSpeed;
	}
};

class AnimationData{
	hash_map<long, AnimationTrack*>tracs;
public:
	AnimationData(){
	}

	void addTrack(wstring&trackName, int startFrame, int endFrame, float animationSpeed){
		AnimationTrack*track=new AnimationTrack(trackName, startFrame, endFrame, animationSpeed);
		tracs[Utils::hash_WString(trackName)]=track;
	}

	AnimationTrack*getAnimationTrack(wstring&animationTrackName){
		return tracs[Utils::hash_WString(animationTrackName)];
	}
};

#endif